package com.mz.nhoz.xlsx;

public interface XlsxTableReader {

	/**
	 * Retorna la cantidad de columnas en la tabla.
	 * 
	 * @return cantidad de columnas en la tabla.
	 */
	public abstract int getColumnCount();// getColumnCount

	/**
	 * Retorna la cantidad de filas en la tabla incluyendo la fila del registro
	 * cabecera (header) de la tabla.
	 * 
	 * @return cantidad de filas en la tabla.
	 */
	public abstract int getRowCount();// getRowCount

	/**
	 * Retorna la cantidad de registros en la tabla sin incluir los registros de
	 * cabecera.
	 * 
	 * @return cantidad de registros en la tabla sin incluir los registros de
	 *         cabecera.
	 */
	public abstract int getRecordCount();// getRecordCount

	/**
	 * Retorna el valor de una celda.
	 * 
	 * @param rowIndex - Indice de fila comenzando en 0.
	 * @param colIndex - Indice de columna comenzando en 0.
	 * @return valor de una celda, null en caso que dicha celda no exista.
	 */
	public abstract Object getCellValue(int rowIndex, int colIndex);

	/**
	 * Retorna un registro de la tabla a partir de un indice de registro.
	 * 
	 * @param recordIndex
	 *            - Indice de registro iniciando en 0.
	 * @return registro de la tabla a partir de un indice de registro, null en
	 *         caso que dicho indice de registro no exista.
	 */
	public abstract XlsxRecord getRecord(int recordIndex);// getRecord
	
	/**
	 * Retorna un mapa con los encabezados de la tabla.
	 * 
	 * @return encabezados de la tabla.
	 */
	public XlsxTableHeaderMap getTableHeaderMap();
	
	
}//XlsxTableReader